1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.google.common.collect;
18
19 import com.google.common.annotations.GwtCompatible;
20 import com.google.common.annotations.GwtIncompatible;
21
22 import java.io.Serializable;
23 import java.util.Map.Entry;
24
25 import javax.annotation.Nullable;
26
27
28
29
30
31
32
33 @GwtCompatible(emulated = true)
34 abstract class ImmutableMapEntrySet<K, V> extends ImmutableSet<Entry<K, V>> {
35 ImmutableMapEntrySet() {}
36
37 abstract ImmutableMap<K, V> map();
38
39 @Override
40 public int size() {
41 return map().size();
42 }
43
44 @Override
45 public boolean contains(@Nullable Object object) {
46 if (object instanceof Entry) {
47 Entry<?, ?> entry = (Entry<?, ?>) object;
48 V value = map().get(entry.getKey());
49 return value != null && value.equals(entry.getValue());
50 }
51 return false;
52 }
53
54 @Override
55 boolean isPartialView() {
56 return map().isPartialView();
57 }
58
59 @GwtIncompatible("serialization")
60 @Override
61 Object writeReplace() {
62 return new EntrySetSerializedForm<K, V>(map());
63 }
64
65 @GwtIncompatible("serialization")
66 private static class EntrySetSerializedForm<K, V> implements Serializable {
67 final ImmutableMap<K, V> map;
68 EntrySetSerializedForm(ImmutableMap<K, V> map) {
69 this.map = map;
70 }
71 Object readResolve() {
72 return map.entrySet();
73 }
74 private static final long serialVersionUID = 0;
75 }
76 }